<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!--准备好一个容器-->
    <div id="test"></div>
    <div id="test1"></div>
    <div id="test2"></div>
    <!---引入react核心库-->
    <script type="text/javascript" src="./js/react.development.js"></script>
    <!--引入react-dom用于支持react操作dom-->
    <script type="text/javascript" src="./js/react-dom.development.js"></script>
    <!--引入babel用于将jsx转为js-->
    <script type="text/javascript" src="./js/babel.min.js"></script>
    <script type="text/javascript" src="./js/prop-types.js"></script>

    <script type="text/babel"> //此处一定要写
    
    //创建组件
    class Person extends React.Component{
        render(){
        const {name,age,sex}=this.props;
        //props是只读的
        //this.props.name="jack" //此行代码会报错，因为props是只读的

        return(
            <ul>
                <li>姓名:{name}</li>
                <li>性别:{sex}</li>
                <li>年龄:{age}</li>
            </ul>
        )
        }
    }
    //对标签属性进行类型必要性限制
    Person.propTypes={
        name:PropTypes.string.isRequired,//限制name为必传，且为字符串
        sex:PropTypes.string,//限制sex为字符串
        age:PropTypes.number,//限制age为数值
        speak:PropTypes.func,//限制speak为函数
    }

    Person.defaultProps={
        sex:'男',//默认为男
        age:18//默认为18
    }

    //2.渲染虚拟DOM到页面
    ReactDOM.render(<Person name="hsd" sex="男" />,document.getElementById("test"))
    ReactDOM.render(<Person name="Ksd" age={13} sex="男" />,document.getElementById("test1"))

    const p = {name:"sss",age:15,sex:"女"}
    ReactDOM.render(<Person {...p}/>,document.getElementById("test2"))

        
    </script>
</body>
</html>